//
//  HomeViewController.swift
//  SinaWeibo
//
//  Created by celeste on 16/5/10.
//  Copyright © 2016年 celeste. All rights reserved.
//

import UIKit

private let LDStatusCellID = "LDStatusCellID"

class HomeViewController: RootViewController {
    
    override func viewDidLoad() {
        
        setupRefreshControl()
        // 调用 RootViewController 的 viewDidLoad 函数，会直接调用 loadData
        super.viewDidLoad()
        
        tableView?.registerClass(UITableViewCell.self, forCellReuseIdentifier: LDStatusCellID)
        
         visitorView?.setupInfo(message: "关注一些人，回这里看看有什么惊喜")
    }
    //收到内存警告
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        
        // 判断 view 是否正在显示
        if view.window == nil {
            dataList.removeAll()
            loadData()
        }
    }
    
    override func loadData() {
        
        //默认起始索引值
        
        let defaultIndex = 100
        
        // 判断是否是上拉
        let isPullup = refreshControl?.isPullupRefresh ?? false
        
        
            refreshControl?.beginRefreshing()
        
        //模拟异步加载数据
        dispatch_async(dispatch_get_global_queue(0, 0)) { () -> Void in
            
            NSThread.sleepForTimeInterval(1.0)
            
            let pulldownIndex = self.dataList.first ?? defaultIndex
            
            // 上拉,获取最后一条数据
            
            let pullupIndex = self.dataList.last ?? 0
            
            // 上拉顺序加载.下拉倒序
            var arrayM = [Int]()
            if isPullup {
                for i in 0..<10 {
                    arrayM.append(pullupIndex - i - 1)
                }
            }else{
                //模拟网络一次加载的数据
                for i in (0..<10).reverse() {
                    arrayM.append(i + pulldownIndex + 1)
                    }
            }
            
            if isPullup {
                self.dataList += arrayM
                
            }else{
                //追加到现有的dataList
                self.dataList = arrayM + self.dataList
            }
            //更新UI
            dispatch_async(dispatch_get_main_queue(), { () -> Void in
                //关闭刷新
                self.refreshControl?.endRefreshing()

                
                //重新加载数据
                self.tableView?.reloadData()
                
            })
        }
        
        
    }
    
    // MARK : - 私有属性
    private lazy var dataList = [Int]()
    
    
}
// MARK : - 数据源方法
extension HomeViewController {
    
    //重写数据源方法
    
    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        
        return dataList.count
    }
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        
        let cell = tableView.dequeueReusableCellWithIdentifier(LDStatusCellID, forIndexPath: indexPath)
        
        cell.textLabel?.text = dataList[indexPath.row].description
        return cell
        
    }
}